package com.itheima.b_string;

import java.util.Arrays;

/**
 * 目标：学习String提供的常用方法
 * <p>
 * 01. public int length()：获取字符串的长度返回，就是字符个数
 * 02. public char charAt(int index)：获取某个索引位置处的字符返回
 * 03. public char[] toCharArray()：将当前字符串转换成字符数组返回
 * 04. public boolean equals(Object anObject)：判断当前字符串与另一个字符串的内容一样，一样返回true
 * 05. public boolean equalsIgnoreCase(String anotherString)：判断当前字符串与另一个字符串的内容是否一样(忽略大小写)
 * 06. public String substring(int beginIndex, int endIndex)：根据开始和结束索引进行截取，得到新的字符串（包前不包后）
 * 07. public String substring(int beginIndex)：从传入的索引处截取，截取到末尾，得到新的字符串返回
 * 08. public String replace(CharSequence target, CharSequence replacement)：使用新值，将字符串中的旧值替换，得到新的字符串
 * 09. public boolean contains(CharSequence s)：判断字符串中是否包含了某个字符串
 * 10. public boolean startsWith(String prefix)：判断字符串是否以某个字符串内容开头，开头返回true，反之返回false
 * 11. public String[] split(String regex)：把字符串按照指定字符串内容进行分割，并返回字符串数组回来
 */
public class StringDemo02 {

    public static void main(String[] args) {
        //1.public int length()：获取字符串的长度返回（就是字符个数）
        String s1 = "abc";
        //利用：对象.方法(实参);调用方法
        int length = s1.length();
        System.out.println(s1 + "的长度：" + length);

        //2.public char charAt(int index)：获取某个索引位置处的字符返回
        //获取"abc"字符串对象的1号索引位置字符
        char c = s1.charAt(1);
        System.out.println(s1 + "的1号索引位置字符：" + c);

        //3.public char[] toCharArray()：将当前字符串转换成字符数组返回
        char[] chs = "abc".toCharArray();
        //快速打印数组内容的固定代码：Arrays.toString(数组).sout
        System.out.println(Arrays.toString(chs));

        //4.public boolean equals(Object anObject)：判断当前字符串与另一个字符串的内容一样，一样返回true
        String s2 = "Abc";
        //比较s1和s2的内容是否相同
        boolean result = s1.equals(s2);
        //equals方法比较内容时，区分大小写！
        System.out.println("s1和s2内容是否相同的结果：" + result);

        //5.public boolean equalsIgnoreCase(String anotherString)：判断当前字符串与另一个字符串的内容是否一样(忽略大小写)
        String s3 = "ABC";
        //忽略大小写比较s1和s3的内容是否相同
        result = s1.equalsIgnoreCase(s3);
        System.out.println("s1和s3内容忽略大小写，是否相同的结果：" + result);

        //6.public String substring(int beginIndex, int endIndex)：根据开始和结束索引进行截取，得到新的字符串（包前不包后）
        String s4 = "abcdefg";
        //截取0索引到4索引，注意：不包含4索引位置的字符
        String s5 = s4.substring(0, 4);
        System.out.println(s4 + "截取后的内容" + s5);
        //比较两个对象空间地址是否一样的操作：==
        //System.out.println(s5 == s4);

        //7.public String substring(int beginIndex)：从传入的索引处截取，截取到末尾，得到新的字符串返回
        //从s4字符串的3号索引开始截取
        String s6 = s4.substring(3);
        System.out.println(s6);

        //8.public String replace(CharSequence target, CharSequence replacement)：使用新值，将字符串中的旧值替换，得到新的字符串
        String s7 = "hello world";
        //将字符串中的"world"替换成"string"
        String s8 = s7.replace("world", "string");
        System.out.println("替换后：" + s8);
        //比较替换前后的字符串对象空间地址值
        //System.out.println(s7 == s8);

        //9.public boolean contains(CharSequence s)：判断字符串中是否包含了某个字符串
        //判断s7中是否包含"hello"
        result = s7.contains("hello");
        System.out.println("是否包含：" + result);

        //10.public boolean startsWith(String prefix)：判断字符串是否以某个字符串内容开头，开头返回true，反之返回false
        String s9 = "李三丰";
        //判断s9这个名字是不是姓"张"
        result = s9.startsWith("张");
        System.out.println(result);

        //11.public String[] split(String regex)：把字符串按照指定字符串内容进行分割，并返回字符串数组回来
        String s10 = "张三,23,男";
        //把s10字符串，根据,进行分割，得到"张三"、"23"和"男"三个字符串
        String[] strs = s10.split(",");
        //打印数组内容
        System.out.println(Arrays.toString(strs));
    }
}
